package com.livery.app.model;

import java.util.List;

import com.livery.data.*;
import com.livery.app.model.observators.*;

public interface AbstractWorkspaceModel {
	public void initialize(Worker worker);
	public List<Car> downloadCarList(int limit, int offset);
	public List<Worker> dowloadWorkerList(int limit, int offset);
	public List<Client> downloadClientList(int limit, int offset);
	public List<Transaction> dowloadTransactionList(int limit, int offset);
	public List<Booking> downloadBookingList(int limit, int offset);
	
	public void registerObserver(CarObserver observer);
	public void registerObserver(WorkerObserver observer);
	public void registerObserver(ClientObserver observer);
	public void registerObserver(TransactionObserver observer);
	public void registerObserver(BookingObserver observer);
	
	public void removeObserver(CarObserver observer);
	public void removeObserver(WorkerObserver observer);
	public void removeObserver(ClientObserver observer);
	public void removeObserver(TransactionObserver observer);
	public void removeObserver(BookingObserver observer);
	
	public void notifyCarObservers();
	public void notifyWorkerObservers();
	public void notifyClientObservers();
	public void notifyTransactionObservers();
	public void notifyBookingObservers();
	
	
	
}
